package com.turing.post.cardmanagement.util;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 申请制卡待审批
 * 
 * @author ys
 * @date 2012-12-17
 */
@SuppressWarnings("serial")
@Entity
@Table(name = "MakeCardApproval")
public class MakeCardApproval implements Serializable {

	/**
	 * @枚举声明
	 */
	/**
	 * 有效期单位-年
	 */
	public final static String EXPIREDUNIT_YEAR = "y";

	/**
	 * 有效期单位-月
	 */
	public final static String EXPIREDUNIT_MONTH = "m";

	/**
	 * 有效期单位-日
	 */
	public final static String EXPIREDUNIT_DAY = "d";

	/**
	 * 有效期算法 对年对月对日加
	 */
	public final static String EXPIREDALGORITHM_YMD = "0";
	/**
	 * 有效期算法 对加后的月底
	 */
	public final static String EXPIREDALGORITHM_M_END = "1";

	/**
	 * 有效期算法 对加后的季末
	 */
	public final static String EXPIREDALGORITHM_S_END = "2";

	/**
	 * 有效期算法 激活时提示对加后日期，可由激活人员修改
	 */
	public final static String EXPIREDALGORITHM_P = "3";
	/**
	 * 状态 申请
	 */
	public final static String STATUS_APPROVAL = "0";
	/**
	 * 状态 业务批准
	 */
	public final static String STATUS_SALESAUTH = "1";
	/**
	 * 状态 财务批准
	 */
	public final static String STATUS_FINANCEAUTH = "2";
	/**
	 * 状态 拒绝状态
	 */
	public final static String STATUS_REJECT = "3";
	/**
	 * 状态 启动制卡
	 */
	public final static String STATUS_MAKED = "9";

	/**
	 * 制卡申请ID
	 */
	private BigInteger MakeCardApplyForId;
	/**
	 * 制卡原因
	 */
	private String Reason;
	/**
	 * 发卡商NO
	 */
	private String IssueCompanyNo;
	/**
	 * 制卡机构号
	 */
	private String IssueBranchNo;
	/**
	 * 制卡商ID
	 */
	private BigInteger CardManufactureId;

	/**
	 * 卡面图样ID
	 */
	private BigInteger cardFaceId;
	/**
	 * 代发卡Bin
	 */
	private String proxyIssueBin;

	/**
	 * 制卡张数
	 */
	private Integer CardCount;
	/**
	 * 有效期
	 */
	private Integer Expired;
	/**
	 * 有效期单位
	 */
	private String ExpiredUnit;
	/**
	 * 有效期算法
	 */
	private String ExpiredAlgorithm;
	/**
	 * 申请人
	 */
	private BigInteger OperId;
	/**
	 * 申请时间
	 */
	private Date ApplyForTime;
	/**
	 * 状态
	 */
	private String Status;

	/**
	 * 提示信息
	 */
	private String hintInfo;

	/**
	 * 最后修改时间
	 */
	private Date lastModifyTime;
	@Column(name = "LASTMODIFYTIME", nullable = false)
	public Date getLastModifyTime() {
		return lastModifyTime;
	}

	public void setLastModifyTime(Date lastModifyTime) {
		this.lastModifyTime = lastModifyTime;
	}

	public MakeCardApproval() {

	}

	@Id
	@Column(name = "MAKECARDAPPLYFORID", nullable = false)
	public BigInteger getMakeCardApplyForId() {
		return MakeCardApplyForId;
	}

	public void setMakeCardApplyForId(BigInteger makeCardApplyForId) {
		MakeCardApplyForId = makeCardApplyForId;
	}

	@Column(name = "REASON", nullable = false)
	public String getReason() {
		return Reason;
	}

	public void setReason(String reason) {
		Reason = reason;
	}

	@Column(name = "ISSUECOMPANYNO", nullable = false)
	public String getIssueCompanyNo() {
		return IssueCompanyNo;
	}

	public void setIssueCompanyNo(String issueCompanyNo) {
		IssueCompanyNo = issueCompanyNo;
	}

	@Column(name = "ISSUEBRANCHNO", nullable = false)
	public String getIssueBranchNo() {
		return IssueBranchNo;
	}

	public void setIssueBranchNo(String issueBranchNo) {
		IssueBranchNo = issueBranchNo;
	}

	@Column(name = "CARDMANUFACTUREID", nullable = false)
	public BigInteger getCardManufactureId() {
		return CardManufactureId;
	}

	public void setCardManufactureId(BigInteger cardManufactureId) {
		CardManufactureId = cardManufactureId;
	}

	@Column(name = "cardFaceId")
	public BigInteger getCardFaceId() {
		return cardFaceId;
	}

	public void setCardFaceId(BigInteger cardFaceId) {
		this.cardFaceId = cardFaceId;
	}

	@Column(name = "proxyIssueBin")
	public String getProxyIssueBin() {
		return proxyIssueBin;
	}

	public void setProxyIssueBin(String proxyIssueBin) {
		this.proxyIssueBin = proxyIssueBin;
	}

	@Column(name = "CARDCOUNT", nullable = false)
	public Integer getCardCount() {
		return CardCount;
	}

	public void setCardCount(Integer cardCount) {
		CardCount = cardCount;
	}

	@Column(name = "EXPIRED", nullable = false)
	public Integer getExpired() {
		return Expired;
	}

	public void setExpired(Integer expired) {
		Expired = expired;
	}

	@Column(name = "EXPIREDUNIT", nullable = false)
	public String getExpiredUnit() {
		return ExpiredUnit;
	}

	public void setExpiredUnit(String expiredUnit) {
		ExpiredUnit = expiredUnit;
	}

	@Column(name = "EXPIREDALGORITHM", nullable = false)
	public String getExpiredAlgorithm() {
		return ExpiredAlgorithm;
	}

	public void setExpiredAlgorithm(String expiredAlgorithm) {
		ExpiredAlgorithm = expiredAlgorithm;
	}

	@Column(name = "OPERID", nullable = false)
	public BigInteger getOperId() {
		return OperId;
	}

	public void setOperId(BigInteger operNo) {
		OperId = operNo;
	}

	@Column(name = "APPLYFORTIME", nullable = false)
	public Date getApplyForTime() {
		return ApplyForTime;
	}

	public void setApplyForTime(Date applyForTime) {
		ApplyForTime = applyForTime;
	}

	@Column(name = "STATUS", nullable = false)
	public String getStatus() {
		return Status;
	}

	public void setStatus(String status) {
		Status = status;
	}

	@Column(name = "hintInfo")
	public String getHintInfo() {
		return hintInfo;
	}

	public void setHintInfo(String hintInfo) {
		this.hintInfo = hintInfo;
	}
}